package com.ytjj.qmyx.supplychain.common.model.request;

import lombok.Data;
import lombok.ToString;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

@Data
@ToString
public class ProductRequest implements Serializable {
    /**
     * 商品ID
     */
    private Integer id;


    /**
     * 供应商名称
     */
    private String bankerName;

    /**
     * 商品一级分类
     */
    private Integer categoryTopId;

    /**
     * 商品二级分类
     */
    private Integer categoryId;

    /**
     * 商品三级分类
     */
    private Integer categoryBottomId;

    /**
     * 最低价格
     */
    private BigDecimal minCostPrice;

    /**
     * 最高价格
     */
    private BigDecimal maxCostPrice;

    /**
     * 领取状态 0-未领取 1-所有的
     */
    private Integer receiveStatus;

    /**
     * 产品状态：1 上架 2 下架  3 已删除 4 待上架 5 打回
     *
     * @mbg.generated
     */
    private Byte status;

    /**
     * 店铺id
     */
    private String shopId;

    /**
     * 第几页 从第1页开始
     */
    private Integer pageNum = 1;

    /**
     * 每页多少条 默认10条
     */
    private Integer pageSize = 10;

//    @NotEmpty(message = "规格不能为空！")
//    private List<ProductSpecRequest> spec;
    private List<Map<String, Object>> spec;
//    @NotNull(message = "sku不能为空！")
    private List<ProductSkuKeyRequest> skuKey;
//    @NotEmpty(message = "轮播图不能为空！")
    private List<ProductImgRequest> bannerList;

//    @NotEmpty(message = "详情图不能为空！")
    private List<ProductImgRequest> infoList;

    /**
     * 一级分类id
     */
    private Integer topCategoryId;

    /**
     * 三级分类id
     */
    private Integer bottomCategoryId;

    /**
     * 审核状态
     */
    private Integer auditStatus;

    /**
     * 品牌Id
     */
    private Integer brandId;

    /**
     * 品牌
     */
    private String brand;

    /**
     * 款号
     */
    private String typeno;

    /**
     * 质检报告逗号隔开
     */
    private String qualityReport;

    /**
     * 附件url
     */
    private String zipUrl;

    private Integer addressId;//地址id

    @Size(max = 100,message = "商品名称不能大于100字！")
//    @NotNull(message = "商品名称不能为空！")
    private String productName;

    @Size(max = 50,message = "商品描述不能大于50字！")
//    @NotNull(message = "商品描述不能为空！")
    private String descr;

    @Size(max = 128,message = "商品主图信息错误！")
//    @NotNull(message = "商品主图不能为空！")
    private String productImg;

//    @NotNull(message = "原价不能为空！")
    private BigDecimal originalPrice;

//    @NotNull(message = "建议购买价不能为空！")
    private BigDecimal salePrice;

//    @NotNull(message = "成本价格不能为空！")
    private BigDecimal costPrice;

//    @NotNull(message = "库存预警不能为空！")
    private Integer stockWarning;

//    @NotNull(message = "测评库存不能为空！")
    private Integer stockEvaluation;

    /**
     * 商品类型 1国内 2国外
     */
    private Integer isExit;

    /**
     * 邮寄类型（mailType）：一般贸易，直邮，保税
     */
    private String mailType;

    /**
     * 邮寄备注：mailNote
     */
    private String mailNote;

    /**
     * 供货价
     */
    private BigDecimal supplyPrice;

    /**
     * 是否控价 2-否 1-是
     */
    private Integer controlPrice;
    /**
     * 控价原因
     */
    private String controlReason;
    /**
     * 供应商商品id
     *
     * @mbg.generated
     */
    private Integer bankerProductId;

    /**
     * 运费模板id
     */
    private Integer freightId;

    /**
     * 采购员
     */
    private String buyer;

    /**
     * 商品标签
     */
    private Integer productLabelId;

    private List<Integer> productIds;

    //供应链规格集合(检查供应链商品规格是否被修改)
    private List<Integer> supplyIds;

    /**
     * 供应链表商品id
     *
     * @mbg.generated
     */
    private Integer supplyProductId;
    /**
     * 批发商品数量区间
     */
    private List<BatchNumRequest> batchNums;
    /**
     * 批发商品数量区间，字符串格式
     */
    private List<String> wholesaleNameArr;

    private String infoImg;

    /**
     * customs_no  海关商品编号
     */
    private String customsNo;

    /**
     *country_id  所属国家id
     */
//    private Integer countryId;
    /**
     * 国家编号
     */
    private String countryCode;
    /**
     * 单位编号
     */
    private String unitCode;
    /**
     * 跨境电商综合税率
     */
    private BigDecimal consolidatedTaxRate;
    /**
     * 发货仓名称
     */
    private String entrepotName;
}
